package com.dj.mingkong.portal.biz.repository.database.music;

import com.dj.mingkong.common.enums.StatusEnum;
import com.dj.mingkong.common.infrastructure.base.dto.query.QueryVo;
import com.dj.mingkong.common.infrastructure.base.eo.BaseEo;
import com.dj.mingkong.common.infrastructure.base.repository.BaseDatabaseRepository;
import com.dj.mingkong.common.infrastructure.eo.database.music.BoxMusicEo;
import com.dj.mingkong.portal.biz.repository.database.music.mapper.BoxMusicMapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;


/**
 * 音乐盒关联音乐repository
 *
 * @author zenglonghui
 * @date: 2022/8/31 14:49
 */
@Repository
public class BoxMusicRepository extends BaseDatabaseRepository<BoxMusicMapper, BoxMusicEo, QueryVo> {
    public List<BoxMusicEo> listByBoxId(Long boxId) {
        return lambdaQuery()
                .eq(BoxMusicEo::getBoxId, boxId).eq(BoxMusicEo::getStatus, StatusEnum.VALID.getIntVal())
                .orderByDesc(BaseEo::getUpdateTime).list();
    }

    public boolean deleteByBoxId(Long boxId) {
        return lambdaUpdate().eq(BoxMusicEo::getBoxId, boxId).remove();
    }

    public Optional<BoxMusicEo> oneOptByBoxIdAndMusicId(Long boxId, Long musicId) {
        return lambdaQuery()
                .eq(BoxMusicEo::getBoxId, boxId)
                .eq(BoxMusicEo::getMusicId, musicId)
                .oneOpt();
    }
}
